#ifndef HASH_MAP_H
#define HASH_MAP_H

// 节点
typedef struct Node {
    char *key;          // 键
    void *value;        // 值
    struct Node *next;  // 链表解决冲突
} Node;

typedef struct HashMap {
    Node **buckets;       // 存储数据的数组
    int size;           // 当前存储的元素个数
    int capacity;       // 哈希表数组的容量
} HashMap;

// 初始化哈希表
HashMap *create_hashmap();

// 插入键值对
void hashmap_insert(HashMap *hashmap, const char *key, void *value);

// 查找键对应的值
void *hashmap_get(HashMap *hashmap, const char *key);

// 删除键值对
void hashmap_remove(HashMap *hashmap, const char *key);

// 释放哈希表
void hashmap_free(HashMap *hashmap);



#endif 